#ifndef FGE_MUSICMANAGER_HPP
#define FGE_MUSICMANAGER_HPP

#include <list>

namespace fge
{

class Song;

class MusicManager
{
public:
	MusicManager();
	~MusicManager();

	void Play(Song *song, float fadeOut = 0.0f, float fadeIn = 0.0f);
	void Queue(Song *song);

	// todo: Pause/Resume
	void Stop(float fadeOut = 0.0f);

	void MusicFinishedCallback();

private:
	std::list<Song*> songs;
	Song *currentSong;

	float fadeIn;
};

}

#endif//FGE_MUSICMANAGER_HPP
